/* 
 * File:   cmdlineopts.h
 * Author: meng
 *
 * Created on April 29, 2011, 10:55 AM
 */

#ifndef CMDLINEOPTS_H
#define	CMDLINEOPTS_H

#include <vector>
#include <boost/program_options.hpp>
#include <string>

using namespace std;

namespace po = boost::program_options;


namespace opsrc {

 class cmdlineopts {
    public:
        cmdlineopts();
        virtual ~cmdlineopts();

        bool parse(int arg, char** argv);
        string stdf_filename() const;
        string config_filename() const;
        bool has_stdffile() const;
        bool has_stdffields() const;
        bool has_testnumbers() const;
        bool has_debug() const;
        bool has_configfile() const;
        vector<string> stdffields() const;
        vector<int> testnumbers() const;

    private:
        cmdlineopts(const cmdlineopts& orig);

    private:   // data variables
        po::variables_map vm;

    };

}  // ns opsrc

#endif	/* CMDLINEOPTS_H */

